/* 
    throttle 节流
    基本上每次看到debounce 就会看到throttle，他们两个的作用都是要降低事件的触发频率，但行为上有很大的不同。
    跟debounce 一样RxJS 有throttle 跟throttleTime 两个方法，一个是传入observable 另一个是传入毫秒，
    比较常用到的也是throttleTime，让我们直接来看范例
*/

const source = Rx.Observable.interval(300).take(5);
const example = source.throttleTime(1000);
/* 
    首先输出0，然后进入节流时间，1000毫秒后，source此时的下一个next应为4
*/
example.subscribe({
    next: (value) => { console.log(value); },
    error: (err) => { console.log('Error: ' + err); },
    complete: () => { console.log('complete'); }
});
// 0
// 4
// complete